//
// Created by wxd on 2025/7/28.
// 相机控制器接口层
//

#pragma once

// C++中纯虚函数，子类必须重写，否则子类可以不重写，直接使用父类即可
class ICameraControl {
public:
    virtual ~ICameraControl() = default;

    virtual void update() {}
    virtual void onMouse(int button, int action, double xpos, double ypos) {}

    /**
     * @param xpos: 鼠标左滑动变小，右滑动变大
     * @param ypos: 鼠标上滑动变小，下滑动变大
     */
    virtual void onCursor(float xpos, float ypos) {}
    virtual void onKeyBoard(int key, int action, int mods) {}
    virtual void onScroll(double yoffset) {}
};
